package com.ruoyi.system.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

public class TopicDto {

    @ApiModel("TopicDto - Query")
    @Data
    public static class Query {
        @ApiModelProperty("ID")
        private Long id;
        @ApiModelProperty("所属项目ID")
        private Long projectId;
        @ApiModelProperty("课题名称")
        private String name;
        @ApiModelProperty("排序")
        private Integer sort;
        @ApiModelProperty("课题描述")
        private Byte education;
    }

    @ApiModel("TopicDto - Insert")
    @Data
    public static class Insert {
        @ApiModelProperty("ID")
        private Long id;
        @ApiModelProperty("所属项目ID")
        private String projectId;
        @ApiModelProperty("课题名称")
        private String name;
        @ApiModelProperty("排序")
        private Integer sort;
        @ApiModelProperty("课题描述")
        private String education;
    }

    @ApiModel("TopicDto - Delete")
    @Data
    public static class Delete {
        private List<Long> idList;
    }

    @ApiModel("TopicDto - GroupQuery")
    @Data
    public static class GroupQuery {
        @ApiModelProperty("课题ID")
        private Long topicId;
        @ApiModelProperty("患者档案ID")
        private Long patientId;
    }

    @ApiModel("TopicDto - GroupInsert")
    @Data
    public static class GroupInsert {
        @ApiModelProperty("课题ID")
        private Long topicId;
        @ApiModelProperty("患者档案ID")
        private Long patientId;
    }

    @ApiModel("TopicDto - GroupDelete")
    @Data
    public static class GroupDelete {
        @ApiModelProperty("课题ID")
        private Long topicId;
        @ApiModelProperty("患者档案ID")
        private Long patientId;
    }

    @ApiModel("TopicDto - TopEntryConditionsInsert")
    @Data
    public static class TopEntryConditionsInsert {
        @ApiModelProperty("ID")
        private Long id;
        @ApiModelProperty("课题ID")
        private Long topicId;
        @ApiModelProperty("性别")
        private Byte gender;
        @ApiModelProperty("年龄段")
        private String age;
        @ApiModelProperty("受教育程度")
        private Byte education;
        @ApiModelProperty("职业")
        private Byte job;
        @ApiModelProperty("地区")
        private String area;
        @ApiModelProperty("治疗类型")
        private String treatmentType;
        @ApiModelProperty("诊断编码")
        private String zdbm;
        @ApiModelProperty("手术编码")
        private String ssbm;
        @ApiModelProperty("降压药")
        private Byte jyy;
        @ApiModelProperty("抗凝药")
        private Byte kny;
        @ApiModelProperty("降糖药")
        private Byte jty;
        @ApiModelProperty("抗血小板药")
        private Byte kxxby;
        @ApiModelProperty("调脂药")
        private Byte tzy;
        @ApiModelProperty("抗血管痉挛药")
        private Byte kxgjly;
        @ApiModelProperty("中药治疗")
        private Byte zyzl;
        @ApiModelProperty("其他")
        private String other;
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        @ApiModelProperty("出院开始时间")
        private Date startTime;
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        @ApiModelProperty("出院结束时间")
        private Date endTime;
    }

    @ApiModel("TopicDto - TopEntryConditionsDelete")
    @Data
    public static class TopEntryConditionsDelete {
        private List<Long> idList;
    }

    @ApiModel("TopicDto - TopEntryConditionsQuery")
    @Data
    public static class TopEntryConditionsQuery {
        @ApiModelProperty("课题ID")
        private Long topicId;
    }

    @ApiModel("TopicDto - TopResearchPathAdd")
    @Data
    public static class TopResearchPathAdd {
        @ApiModelProperty("ID")
        private Long id;
        @ApiModelProperty("档案菜单ID")
        private List<Long> archivesTagIdList;
        @ApiModelProperty("课题ID")
        private Long topicId;
    }

    @ApiModel("TopicDto - TopResearchPathDelete")
    @Data
    public static class TopResearchPathDelete {
        private List<Long> idList;
    }

    @ApiModel("TopicDto - TopResearchPathQuery")
    @Data
    public static class TopResearchPathQuery {
        @ApiModelProperty("档案菜单ID")
        private Long archivesTagId;
        @ApiModelProperty("课题ID")
        private Long topicId;
    }

    @ApiModel("TopicDto - DetailQuery")
    @Data
    public static class DetailQuery {
        @ApiModelProperty("课题ID")
        private Long topicId;
        @ApiModelProperty("入组状态(0：未入组  1：已入组)")
        private Byte status;
    }
}
